--串口调试FPGA的LLCOM脚本示例


-------------------------------------- 指令格式 ----------------------------------------
--| 指令头[一个字节]   | 指令编号[一个字节]   | 指令数据段[4个字节]  | 指令尾[一个字节]    |
--| :--------------:  | :----------------: | :-----------------: | :--------------:  |
--|       0xAA        |       0-255        |         --          |       0x55        |
---------------------------------------------------------------------------------------

---------------------------------------
--函数名:int2hex
--功能 ：32位int的十进制标志转8位十六进制
-- 表示
--例如：12 --> 0000000c  
-- -12 --> fffffff4
---------------------------------------
function int2hex(x)
    local b32HH = (x >> 24) & 0xff;
    local b32HL = (x >> 16) & 0xff;
    local b32LH = (x >>  8) & 0xff;
    local b32LL = (x      ) & 0xff;
    local a = string.format("%02x",b32HH)
    local b = string.format("%02x",b32HL)
    local c = string.format("%02x",b32LH)
    local d = string.format("%02x",b32LL)
    local e=a..b..c..d
    return e
end
---------------------------------------
--函数名:char2hex
--功能 ：十进制char转16进制
--输入： 0-255 
--例如: 12  --> 0c  
--     -12  --> f4
---------------------------------------
function char2hex(x)
    x= x & 0xff;
    return string.format("%02x",x)
end

function delay(i)
	while(i>0) do
		i=i-1
	end
end

sys.taskInit(function ()
	local set=string.fromHex(char2hex("25"))
	local reset=string.fromHex(char2hex("24"))
	local cmd=reset
    local cnt = 100000
    local str=string.fromHex(char2hex("1"))
    apiSendUartData(str)
    --str=char2hex(170)..char2hex(cmd)..int2hex(cmd_data)..char2hex(85)
	while ( cnt > 0 ) do
	    --log.info("send data",apiSendUartData(str),"cmd="..str)
	    apiSendUartData(str)
	    --str=str..cmd
	    if(str==set) then
	    	str=str..reset
	    	--cmd=reset
	    else
	    	str=set
	    	--cmd=set
	    end
	    --sys.wait(1) --等待的ms
	    delay(10);
    	cnt = cnt-1
    end
    --apiSendUartData(str)
    log.info("send data","end")
end)












